package com.cloudkinto.enumType.product;

import com.baomidou.mybatisplus.core.enums.IEnum;
import com.cloudkinto.vo.common.CommonKvVo;

import java.util.ArrayList;

/**
 * @author long
 */

public enum DangerousEnum implements IEnum<String> {
    /**
     *
     */
    NORMAL(0, "普货（非危险品）"),
    /**
     *
     */
    BATTERY(1, "内置电池（电池不可拆）"),
    /**
     * 配套电池（电池可拆卸）
     */
    BATTERY_COMBO(2, "配套电池（电池可拆卸）"),
    /**
     * 纯电池
     */
    PURE_BATTERY(3, "纯电池"),
    /**
     * 液体
     */
    LIQUID(4, "液体"),
    /**
     * 膏体
     */
    PASTE(5, "膏体"),
    /**
     * 粉末
     */
    POWDER(6, "粉末"),
    /**
     * 带磁
     */
    MAGNETIC(7, "带磁");

    private final Integer code;

    private final String desc;

    DangerousEnum(Integer code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    @Override
    public String getValue() {
        return name();
    }

    public static ArrayList<CommonKvVo> getList() {
        ArrayList<CommonKvVo> list = new ArrayList<>();
        for (DangerousEnum dangerousEnum : values()) {
            list.add(
                    CommonKvVo.builder()
                            .label(dangerousEnum.getValue())
                            .value(dangerousEnum.code)
                            .build()
            );
        }
        return list;
    }

    public static Integer getCode(String desc) {
        for (DangerousEnum dangerousEnum : values()) {
            if (dangerousEnum.desc.equals(desc)) {
                return dangerousEnum.code;
            }
        }
        return null;
    }

    public static String getDesc(Integer code) {
        for (DangerousEnum dangerousEnum : values()) {
            if (dangerousEnum.code.equals(code)) {
                return dangerousEnum.desc;
            }
        }
        return null;
    }
}
